<?php
// Questo gestisce i messaggi (la posta)
class Messaggi extends CI_Controller{
	
	public function __construct(){
		parent::__construct();
		$this->load->model('mod_auth');
		$this->load->model('amicizia_mod');
		$this->load->helper('standard');
		$this->load->model('messaggi_mod');
		
		
		if(!$this->mod_auth->stato_login()){
			 redirect('/login') ; 
		}
	}	
	
	
	
	public function div_menu(){
		$data['arr_messaggi'] = $this->messaggi_mod->div_messaggi_non_letti();
		$div_elenco = $this->load->view('messaggi/div_elenco_messaggi' , $data , true);
		echo $div_elenco ; 
	}
	
	
	public function html_form_invia_messaggio(){
		$this->load->view('messaggi/form_invia_messaggio');
	}
	
	// Questa è al parte che restituisce il totale pagine ricevute
	public function tot_pagine_ricevuti(){
		echo $this->messaggi_mod->tot_pagine_ricevuti();
	}
	
	
	// Questa è al parte che restituisce il totale delle pagine inviate
	public function tot_pagine_inviati(){
		echo $this->messaggi_mod->tot_pagine_inviati();
	}
	
	public function elimina_messaggio_inviato($id_mess){
		echo $this->messaggi_mod->elimina_messaggio_inviato($id_mess);
	}
	
	// Elimina messaggio ricevuto
	public function elimina_messaggio_ricevuto($id_messaggio){
		
		if($id_messaggio){
			$risultato = $this->messaggi_mod->elimina_messaggio_ricevuto($id_messaggio);
			if($risultato==true) echo "1";
			else echo $risultato ; 
		}
		else echo "I dati sono incompleti.";
	}
	
	
	// questa dovrebbe eussere quella che mostra il dettaglio del messaggio
	public function dettaglio_messaggio($id_messaggio){
		$id_messaggio= (int) $id_messaggio ; 
		if($id_messaggio) {
			$arr_elenco = $this->messaggi_mod->messaggio_singolo($id_messaggio);
			$data['arr_messaggio'] = $arr_elenco['elenco'];
			$data['tot'] = $arr_elenco;
			$html_interno = $this->load->view('messaggi/dettaglio_messaggio' , $data , true);
		}
		else{
			$html_interno = "Nessun messaggio da visualizzare";	
		}
		
		$this->_default($html_interno);

		
	}
	
	public function _default($html_interno , $titolo_pagina="Messaggi"){
		$this->load->model('setting_mod');
		$this->load->model('bacheca_mod');
		
		$id_bacheca =  $this->mod_auth->id_bacheca();
		$data_home_bacheca['amicizia_se'] = $this->amicizia_mod->verifica_amicizia($id_bacheca);
		
		$id_utente_bacheca = $this->mod_auth->id_loggato();
		
		$data_barra_destra['data'] = "data";
		$data_pagina['html_barra_laterale_destra'] = $this->load->view('fissi/accordion' , $data_barra_destra , true);
		
		$data['arr_js'][0] = base_url()."messaggi/javascript" ; 
		$data['arr_css'][0] = base_url()."assets/css/bacheca.css" ; 
		$data['arr_css'][1] = base_url()."assets/css/messaggi.css" ;
		$data['proprietario_bacheca'] = "Clanny.it | $titolo_pagina";
		
		$this->load->view('fissi/html_start', $data);
		$this->load->view('fissi/menu');
	
		// controllo richiesta amicizia
		$data_pagina['html_pagina_centrale'] = $html_interno ; 
		$this->load->view('fissi/contenitore_pagina' , $data_pagina);
		
		$this->load->view('fissi/html_end');
	}
	
	public function index(){
		$this->_default("Controller  messaggi ");
	}
	
	public function elenco_ricevuti(){
		$html_centrale = $this->load->view('messaggi/elenco_messaggi_ricevuti' , array() , true);
		$this->_default($html_centrale , "Messaggi Ricevuti");
	}
	
	public function elenco_inviati(){
		$html_centrale = $this->load->view('messaggi/elenco_messaggi_inviati' , array() , true);
		$this->_default($html_centrale, "Messaggi Inviati");
	} 
	
	public function elenco_bozze(){
		$this->_default("elenco bozze ");
	}
	
	public function nuovo_messaggio(){
		
		$html_nuovo_messaggio = $this->load->view('messaggi/scrivi_messaggio.php' , array() , true);
		$this->_default($html_nuovo_messaggio);
		
	}
	
	public function aggiungi_risposta(){
		$id_messaggio = $this->input->post('id_messaggio');
		$testo_messaggio = $this->input->post('testo_aggiungi_messaggio');
		$ris =  $this->messaggi_mod->aggiungi_risposta($id_messaggio , $testo_messaggio);
		if($ris=="1"){
			echo $this->invia_mail_messaggio($id_messaggio);
		}
		else echo $ris; 
		
	}
	
	public function invia_mail_messaggio($id_messaggio){
		$this->load->model('invia_mail');
		// ora l'invio della mail 
		$data = $this->invia_mail->msg_inserimento($id_messaggio);
		$data['id_messaggio'] = $id_messaggio ; 
		$testo_email = $this->load->view('invio_mail/msg_invio' , $data , true);
		
		if($_SERVER['SERVER_NAME']=="www.clanny.it"){
			
			$nome_mia_bacheca = $this->mod_auth->nome_pagina_log();
			
			$this->load->library('email'); 
			foreach($data['elenco_lettori'] as $key => $value){
				$email = $value['email'];
				$this->email->initialize(array('mailtype' => 'html'));  
				$this->email->from('info@clanny.it', 'clanny.it');
				$this->email->to($email); 
				
				$this->email->subject("Clanny.it | Nuovo messaggio da {$nome_mia_bacheca}");
				$this->email->message($testo_email); 
		
				$this->email->send();
			}
			return "1";
		}
		else return  "Le mail possono essere inviate solo da remoto, non da locale";
	}
	
	
	// questa è al parte che  serve ad inviare il messaggio
	public function invia(){
		
		$arr_amici = $this->input->post('elenco_amici');
		$titolo_messaggio = $this->input->post('titolo_messaggio');
		$testo_messaggio  = $this->input->post('testo_messaggio');
		
		$id_messaggio_inserito = $this->messaggi_mod->registra_messaggio($arr_amici , $titolo_messaggio , $testo_messaggio);
		
		echo $this->invia_mail_messaggio($id_messaggio_inserito);
		//print_r($data['elenco_lettori']); // questa contiene le mail
		//echo $testo_email ; // questo è il testo della mail
		
		
		// ora va fatto il ciclo tra gli iscritti meno chi la invia ed inviare la mail
		// invia prima l'ultimo messaggio, poi la cronologia della comunicazione
		// e li invia a tutti quelli che sono iscritti
		
	}
	
	// Questa come dice il nome, serve a restituire l'elenco dei messaggi ricevuti
	public function elenco_messaggi_ricevuti($pag_att){
		//echo "$pag_att";
		$this->load->model('messaggi_mod');
		
		$data['elenco_ricevuti'] = $this->messaggi_mod->elenco_ricevuti($pag_att);
		$this->load->view('messaggi/elenco_ricevuti' , $data);
	}
	
	// Questa come dice il nome, serve a restituire l'elenco dei messaggi ricevuti
	public function elenco_messaggi_inviati($pag_att){
		//echo "$pag_att";
		$this->load->model('messaggi_mod');
		
		$data['elenco_ricevuti'] = $this->messaggi_mod->elenco_inviati($pag_att);
		$this->load->view('messaggi/elenco_inviati' , $data);
	}
	
	public function javascript(){
		$this->load->view('messaggi/javascript');
	}
	
	
}

?>
